package com.zkh.myframe.request;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.zkh.myframe.annotation.RequestMethod;

/**
 * 请求属性
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequestAttr {
	/**
	 * 请求URI，基于@Request注解的prefix配置
	 */
	String uri();
	
	/**
	 * 请求方式，默认GET
	 */
	String method() default RequestMethod.GET;
	
	/**
	 * 请求属性。参照标准Http请求，可设置以下属性：
	 * User-Agent，Accept，Accept-Encoding，Accept-Language，Connection，Content-Length，
	 * Content-Type，Referer，Pragma，Cache-Control，Authorization，Host，Origin，Cookie。
	 * 每一项请以props={"属性=属性值"}的格式设置，如：<br><br>
	 * <code>props={"User-Agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"}</code>
	 * <br><br>
	 * <b>特殊的，如果要指定以json格式发送请求，可直接配置为props="application/json"，将自动识别为props="Content-Type=application/json"</b><br><br>
	 * 其中，部分属性已有默认值，具体值如下：<br><br>
	 * <pre>
	 * User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)
	 * Accept: *&frasl;*
	 * Accept-Encoding: gzip, deflate
	 * Connection: Keep-Alive
	 * </pre>
	 */
	String[] props() default {};
}
